package com.papercutting.platform.dto.request;

import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * 剪纸文化请求
 */
@Data
public class CultureRequest implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * ID（更新时需要）
     */
    private Long id;
    
    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空")
    @Size(max = 200, message = "标题长度不能超过200个字符")
    private String title;
    
    /**
     * 副标题
     */
    @Size(max = 200, message = "副标题长度不能超过200个字符")
    private String subtitle;
    
    /**
     * 封面图片
     */
    @Size(max = 500, message = "封面图片URL长度不能超过500个字符")
    private String coverImage;
    
    /**
     * 简介
     */
    @Size(max = 500, message = "简介长度不能超过500个字符")
    private String summary;
    
    /**
     * 详细内容
     */
    private String content;
    
    /**
     * 分类 1-历史文化 2-技法介绍 3-作品欣赏 4-文化内涵
     */
    @NotNull(message = "分类不能为空")
    @Min(value = 1, message = "分类值不正确")
    @Max(value = 4, message = "分类值不正确")
    private Integer category;
    
    /**
     * 标签，逗号分隔
     */
    @Size(max = 200, message = "标签长度不能超过200个字符")
    private String tags;
    
    /**
     * 排序号
     */
    @Min(value = 0, message = "排序号不能为负数")
    private Integer sortOrder = 0;
    
    /**
     * 状态 0-草稿 1-已发布 2-已下架
     */
    @NotNull(message = "状态不能为空")
    @Min(value = 0, message = "状态值不正确")
    @Max(value = 2, message = "状态值不正确")
    private Integer status = 0;
    
    /**
     * 是否推荐
     */
    @NotNull(message = "推荐状态不能为空")
    private Boolean isRecommend = false;
    
    /**
     * 是否置顶
     */
    @NotNull(message = "置顶状态不能为空")
    private Boolean isTop = false;
}